package com.zjxf.controller.common;

import com.alibaba.fastjson.JSONObject;
import com.zjxf.base.bean.po.UmsUser;
import com.zjxf.base.common.JSONResponse;
import org.apache.shiro.SecurityUtils;

/**
 * @author ZhangWei
 * @date 2021/3/23/023 17:02
 */
public class BaseController {

    /**
     * 格式输出结果
     *
     * @return JSONResponse
     */
    protected JSONResponse success() {
        return JSONResponse.success();
    }

    /**
     * 默认返回zlm服务
     *
     * @return JSONObject
     */
    protected JSONObject zlmSuccess() {
        JSONObject paramJson = new JSONObject();
        paramJson.put("code", 0);
        paramJson.put("msg", "success");
        return paramJson;
    }


    /**
     * 格式输出结果
     *
     * @param msg 描述
     * @return ResultMessage
     */
    protected JSONResponse success(String msg) {
        return JSONResponse.success(msg);
    }

    /**
     * 格式输出结果
     *
     * @param data 数据
     * @return ResultMessage
     */
    protected JSONResponse success(Object data) {
        return JSONResponse.success(data);
    }

    /**
     * 分页返回
     *
     * @param pageNum  分页参数
     * @param pageSize 分页参数
     * @param total    分页总条数
     * @param data     数据
     * @return JSONResponse
     */
    protected JSONResponse success(Integer pageNum, Integer pageSize, Long total, int totalPage, Object data) {
        JSONObject jsonData = new JSONObject();
        jsonData.put("pageNumber", pageNum);
        jsonData.put("pageSize", pageSize);
        jsonData.put("total", total);
        jsonData.put("totalPage", totalPage);
        jsonData.put("rows", data);
        return this.success(jsonData);
    }

    /**
     * 获取当前登录用户
     *
     * @return 返回当前登录用户
     */
    public UmsUser getUser() {
        return (UmsUser) SecurityUtils.getSubject().getPrincipal();
    }

    /**
     * 返回当前登录用户id
     *
     * @return 登录用户id
     */
    public Long getUserId() {
        return getUser().getId();
    }
}
